/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import model.bean.BeanTipoArchivo;
import model.daobase.DBase;

/**
 *
 * @author francotel
 */
public class DaoTipoArchivo extends DBase{
    
    
    public ArrayList<BeanTipoArchivo> getTipoList() {
        ArrayList<BeanTipoArchivo> TipoList = new ArrayList<BeanTipoArchivo>();
        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        BeanTipoArchivo tipoarchivo = null;
        
        try {

            String query = "select * from tipoarchivo";//aqui cambiar en la base idcurso

            pstmt = conn.prepareStatement(query);
            res = pstmt.executeQuery();
           
            while (res.next()) {
                
                tipoarchivo = new BeanTipoArchivo();
                tipoarchivo.setIdtipoarchivo(res.getInt(1));
                tipoarchivo.setNombre_tipo(res.getString(2));
                TipoList.add(tipoarchivo);
                }
            
               

            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return TipoList;

    }
    
    
    public void insert(ArrayList<Integer> numEval, int idcurso){
        this.init_mysql();
        PreparedStatement pstmt = null;
        ArrayList<Integer> listaTipos =new ArrayList<Integer>();
        int j=1;
        for(int i=0;i<numEval.get(0);i++){
            listaTipos.add(j);
            j++;
            
        }
        
        j=5;
        for(int i=0;i<numEval.get(1);i++){
            listaTipos.add(j);
            j++;
            
        }
        
        try {

            String query = " INSERT INTO curso_has_tipoarchivo(idcurso,idtipoarchivo) "
                    + "VALUES(?,?)";


            pstmt = conn.prepareStatement(query);
for(int i=0;i<listaTipos.size();i++){
            pstmt.setInt(1, idcurso);
          
            pstmt.setInt(2,listaTipos.get(i));
         
            pstmt.executeUpdate();
}
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        
    }
    
    
     public void updatetipo(ArrayList<Integer> numEval, int idcurso){
        this.init_mysql();
        PreparedStatement pstmt = null;
        PreparedStatement pstmt1 = null;
        ArrayList<Integer> listaTipos =new ArrayList<Integer>();
        int j=1;
        for(int i=0;i<numEval.get(0);i++){
            listaTipos.add(j);
            j++;
            
        }
        
        j=5;
        for(int i=0;i<numEval.get(1);i++){
            listaTipos.add(j);
            j++;
            
        }
        
        try {
            String query1="DELETE FROM curso_has_tipoarchivo where idcurso="+idcurso;
            String query = " INSERT INTO curso_has_tipoarchivo(idcurso,idtipoarchivo) "
                    + "VALUES(?,?)";

            pstmt1=conn.prepareStatement(query1);
            pstmt1.executeUpdate();
            pstmt = conn.prepareStatement(query);
for(int i=0;i<listaTipos.size();i++){
            pstmt.setInt(1, idcurso);
          
            pstmt.setInt(2,listaTipos.get(i));
         
            pstmt.executeUpdate();
}
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        
    }
    
    
    
    
    public ArrayList<Integer> getNumEval(int idcurso){
        ArrayList<Integer> numEval=new ArrayList<Integer>();
        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res=null;
        
        
        try {

            String query = " SELECT count(idtipoarchivo) FROM curso_has_tipoarchivo WHERE idcurso="+idcurso
                            +"GROUP BY idcurso"
                            + "HAVING idtipoarchivo<5";


            pstmt = conn.prepareStatement(query);
            res=pstmt.executeQuery();
            while(res.next()){
                numEval.add(res.getInt(1));
            }
          
         String query2 = " SELECT count(idtipoarchivo) FROM curso_has_tipoarchivo WHERE idcurso="+idcurso
                            +"GROUP BY idcurso"
                            + "HAVING idtipoarchivo>4";


            pstmt = conn.prepareStatement(query2);
            res=pstmt.executeQuery();
            while(res.next()){
                numEval.add(res.getInt(1));
            }
          

            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }
        
        
        return numEval;
    }
}